using System;
namespace ChangesOnString
{
	class Program
	{
		static void Main(string[] args)
		{
			String str = "hello";
			String upperStr = str.ToUpper();
			Console.WriteLine(str);
			Console.WriteLine(upperStr);
			
			String insertedStr = str.Insert(0,"WORLD");
			Console.WriteLine(str);
			Console.WriteLine(insertedStr);
		}
	}}

///答案：输出是hello。由于在.NET中，String有一个非常特殊的性质：String的实例的状态不能被改变。如果String的成员函数会修改实例的状态，将会返回一个新的String实例。改动只会出现在返回值中，而不会修改原来的实例。所以本题中输出仍然是原来的字符串值hello。

///如果试图改变String的内容，改变之后的值可以通过返回值拿到。用StringBuilder是更好的选择，特别是要连续多次修改的时候。如果用String连续多次修改，每一次修改都会产生一个临时对象，开销太大。